<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
    <!-- 1. 导入 路由模块 -->
    <script src="https://unpkg.com/vue-router/dist/vue-router.js "></script>
</head>
<body>
    <!-- 路由是实现不同组件之间的切换 -->
    <div id="app">
        <!-- <a href="#/login">登录</a>
        <a href="#/register">注册</a> -->

        <!--提供给我们另一个元素  router-link 路由链接   去登录页 -->
        <!-- 默认渲染为a标签 -->
        <router-link to="/login">登录</router-link>
        <router-link to="/register">注册</router-link>
        <!-- 这是 vue-router 提供的元素，专门用来当做占位符的，
            会将匹配到的组件展示到这里 -->
        <router-view></router-view>
    </div>
    
    <script>
        // 组件的模板对象
        var login = {
            template:'<h1>登录组件</h1>'
        }
        var register = {
            template:'<h1>注册组件</h1>'
        }
        /* Vue.component('login',{
            template:'<h1>登录组件</h1>'
        })
        
        */
        // 2.创建一个路由对象，当导入vue-router之后，在window全局对象中，
        // 就有一个路由的构造函数，叫做VueRouter 
        // 在 new 路由对象的时候，可以为 构造函数，传递一个配置对象
        var router = new VueRouter({
            //route   // 这个配置对象中的 route 表示 【路由匹配规则】的意思
            // 表示有很多的路由匹配规则
            routes:[
                // 每个路由规则，都是一个对象，这个规则对象身上，有两个必须的属性：
                /* 1. 是 path 表示监听哪个路由链接地址
                   2. 是 component，表示 对应的组件
                */
               // component 的属性值，必须是一个组件模板对象，不能是组件的引用名称
               {path:'/login',component:login},
               {path:'/register',component:register}
            ]

        })
        new Vue({
            el:"#app",
            router  // 将路由规则对象，注册一下，用来监听url地址的变化，然后展示对应的组件
        })
    </script>
</body>
</html>